#nullable enable

//===================================================================
// 项目名: Hbt.Application
// 文件名: HbtModelDestinationDto.cs
// 创建者: Lean365
// 创建时间: 2024-03-07
// 版本号: V0.0.1
// 描述: 机种仕向数据传输对象
//===================================================================

using System;
using System.Collections.Generic;
using Hbt.Common.Models;

namespace Hbt.Application.Dtos.Logistics.Manufacturing.Master
{
    /// <summary>
    /// 机种仕向基础DTO（与HbtModelDestination实体字段严格对应）
    /// </summary>
    public class HbtModelDestinationDto
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public HbtModelDestinationDto()
        {
            PlantCode = string.Empty;
            MaterialCode = string.Empty;
            ModelCode = string.Empty;
            DestinationCode = string.Empty;
        }

        /// <summary>
        /// 机种仕向ID（适配字段）
        /// </summary>
        [AdaptMember("Id")]
        public long ModelDestinationId { get; set; }

        /// <summary>
        /// 工厂代码
        /// </summary>
        public string PlantCode { get; set; } = string.Empty;

        /// <summary>
        /// 物料编码
        /// </summary>
        public string MaterialCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种编码
        /// </summary>
        public string ModelCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种名称
        /// </summary>
        public string? ModelName { get; set; }

        /// <summary>
        /// 仕向地编码
        /// </summary>
        public string DestinationCode { get; set; } = string.Empty;

        /// <summary>
        /// 仕向地名称
        /// </summary>
        public string? DestinationName { get; set; }

        /// <summary>
        /// 仕向地类型(1=日本 2=美国 3=澳洲 4=德国 5=加拿大 6=国内 7=其他)
        /// </summary>
        public int? DestinationType { get; set; }

        /// <summary>
        /// 产品规格
        /// </summary>
        public string? ProductSpecification { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateBy { get; set; } = string.Empty;

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }

        /// <summary>
        /// 更新人
        /// </summary>
        public string? UpdateBy { get; set; }
    }

    /// <summary>
    /// 机种仕向查询DTO
    /// </summary>
    /// <remarks>
    /// 创建者: Lean365
    /// 创建时间: 2024-03-07
    /// </remarks>
    public class HbtModelDestinationQueryDto : HbtPagedQuery
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public HbtModelDestinationQueryDto()
        {
            PlantCode = string.Empty;
            MaterialCode = string.Empty;
            ModelCode = string.Empty;
            DestinationCode = string.Empty;
        }

        /// <summary>
        /// 工厂代码
        /// </summary>
        public string? PlantCode { get; set; }

        /// <summary>
        /// 物料编码
        /// </summary>
        public string? MaterialCode { get; set; }

        /// <summary>
        /// 机种编码
        /// </summary>
        public string? ModelCode { get; set; }

        /// <summary>
        /// 机种名称
        /// </summary>
        public string? ModelName { get; set; }

        /// <summary>
        /// 仕向地编码
        /// </summary>
        public string? DestinationCode { get; set; }

        /// <summary>
        /// 仕向地名称
        /// </summary>
        public string? DestinationName { get; set; }

        /// <summary>
        /// 仕向地类型
        /// </summary>
        public int? DestinationType { get; set; }
    }

    /// <summary>
    /// 机种仕向创建DTO
    /// </summary>
    /// <remarks>
    /// 创建者: Lean365
    /// 创建时间: 2024-03-07
    /// </remarks>
    public class HbtModelDestinationCreateDto
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public HbtModelDestinationCreateDto()
        {
            PlantCode = string.Empty;
            MaterialCode = string.Empty;
            ModelCode = string.Empty;
            DestinationCode = string.Empty;
        }

        /// <summary>
        /// 工厂代码
        /// </summary>
        public string PlantCode { get; set; } = string.Empty;

        /// <summary>
        /// 物料编码
        /// </summary>
        public string MaterialCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种编码
        /// </summary>
        public string ModelCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种名称
        /// </summary>
        public string? ModelName { get; set; }

        /// <summary>
        /// 仕向地编码
        /// </summary>
        public string DestinationCode { get; set; } = string.Empty;

        /// <summary>
        /// 仕向地名称
        /// </summary>
        public string? DestinationName { get; set; }

        /// <summary>
        /// 仕向地类型(1=日本 2=美国 3=澳洲 4=德国 5=加拿大 6=国内 7=其他)
        /// </summary>
        public int? DestinationType { get; set; }

        /// <summary>
        /// 产品规格
        /// </summary>
        public string? ProductSpecification { get; set; }
    }

    /// <summary>
    /// 机种仕向更新DTO
    /// </summary>
    /// <remarks>
    /// 创建者: Lean365
    /// 创建时间: 2024-03-07
    /// </remarks>
    public class HbtModelDestinationUpdateDto : HbtModelDestinationCreateDto
    {
        /// <summary>
        /// 机种仕向ID
        /// </summary>
        [AdaptMember("Id")]
        public long ModelDestinationId { get; set; }
    }

    /// <summary>
    /// 机种仕向导入DTO
    /// </summary>
    /// <remarks>
    /// 创建者: Lean365
    /// 创建时间: 2024-03-07
    /// </remarks>
    public class HbtModelDestinationImportDto
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public HbtModelDestinationImportDto()
        {
            PlantCode = string.Empty;
            MaterialCode = string.Empty;
            ModelCode = string.Empty;
            DestinationCode = string.Empty;
        }

        /// <summary>
        /// 工厂代码
        /// </summary>
        public string PlantCode { get; set; } = string.Empty;

        /// <summary>
        /// 物料编码
        /// </summary>
        public string MaterialCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种编码
        /// </summary>
        public string ModelCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种名称
        /// </summary>
        public string? ModelName { get; set; }

        /// <summary>
        /// 仕向地编码
        /// </summary>
        public string DestinationCode { get; set; } = string.Empty;

        /// <summary>
        /// 仕向地名称
        /// </summary>
        public string? DestinationName { get; set; }

        /// <summary>
        /// 仕向地类型(1=日本 2=美国 3=澳洲 4=德国 5=加拿大 6=国内 7=其他)
        /// </summary>
        public int? DestinationType { get; set; }

        /// <summary>
        /// 产品规格
        /// </summary>
        public string? ProductSpecification { get; set; }
    }

    /// <summary>
    /// 机种仕向导出DTO
    /// </summary>
    /// <remarks>
    /// 创建者: Lean365
    /// 创建时间: 2024-03-07
    /// </remarks>
    public class HbtModelDestinationExportDto
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public HbtModelDestinationExportDto()
        {
            PlantCode = string.Empty;
            MaterialCode = string.Empty;
            ModelCode = string.Empty;
            DestinationCode = string.Empty;
            CreateTime = DateTime.Now;
        }

        /// <summary>
        /// 工厂代码
        /// </summary>
        public string PlantCode { get; set; } = string.Empty;

        /// <summary>
        /// 物料编码
        /// </summary>
        public string MaterialCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种编码
        /// </summary>
        public string ModelCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种名称
        /// </summary>
        public string? ModelName { get; set; }

        /// <summary>
        /// 仕向地编码
        /// </summary>
        public string DestinationCode { get; set; } = string.Empty;

        /// <summary>
        /// 仕向地名称
        /// </summary>
        public string? DestinationName { get; set; }

        /// <summary>
        /// 仕向地类型
        /// </summary>
        public string? DestinationTypeText { get; set; }

        /// <summary>
        /// 产品规格
        /// </summary>
        public string? ProductSpecification { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateBy { get; set; } = string.Empty;

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }

        /// <summary>
        /// 更新人
        /// </summary>
        public string? UpdateBy { get; set; }
    }

    /// <summary>
    /// 机种仕向模板DTO
    /// </summary>
    /// <remarks>
    /// 创建者: Lean365
    /// 创建时间: 2024-03-07
    /// </remarks>
    public class HbtModelDestinationTemplateDto
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public HbtModelDestinationTemplateDto()
        {
            PlantCode = string.Empty;
            MaterialCode = string.Empty;
            ModelCode = string.Empty;
            DestinationCode = string.Empty;
        }

        /// <summary>
        /// 工厂代码
        /// </summary>
        public string PlantCode { get; set; } = string.Empty;

        /// <summary>
        /// 物料编码
        /// </summary>
        public string MaterialCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种编码
        /// </summary>
        public string ModelCode { get; set; } = string.Empty;

        /// <summary>
        /// 机种名称
        /// </summary>
        public string? ModelName { get; set; }

        /// <summary>
        /// 仕向地编码
        /// </summary>
        public string DestinationCode { get; set; } = string.Empty;

        /// <summary>
        /// 仕向地名称
        /// </summary>
        public string? DestinationName { get; set; }

        /// <summary>
        /// 仕向地类型(1=日本 2=美国 3=澳洲 4=德国 5=加拿大 6=国内 7=其他)
        /// </summary>
        public int? DestinationType { get; set; }

        /// <summary>
        /// 产品规格
        /// </summary>
        public string? ProductSpecification { get; set; }
    }
}
